﻿using System;
using System.Linq;
using System.Collections.Generic;
using SIM.Geo.DA;
using SIM.Geo.BE;

namespace SIM.Geo.BL
{
    public class BLDetalleAvanceLabor
    {
        #region Metodos
        /// <summary>
        /// Método que devuelve la lista de DetalleAvanceLabor
        /// </summary>
        /// <returns></returns>
        public List<DetalleAvanceLabor> ListarDetalleAvanceLabor(int codigoAvanceLabor)
        {
            return Accesor.ListarDetalleAvanceLabor(codigoAvanceLabor);
        }
        /// <summary>
        /// Método para insertar una DetalleAvanceLabor
        /// </summary>
        /// <param name="DetalleAvanceLabor"></param>
        /// <returns></returns>
        public int InsertarDetalleAvanceLabor(DetalleAvanceLabor detalleAvanceLabor)
        {
            return Accesor.InsertarDetalleAvanceLabor(detalleAvanceLabor);
        }
        /// <summary>
        /// Método para modificar un DetalleAvanceLabor
        /// </summary>
        /// <param name="DetalleAvanceLabor"></param>
        public void ModificarDetalleAvanceLabor(DetalleAvanceLabor detalleAvanceLabor)
        {

            // //Modifico el AvanceLabor
            var detalleAvanceLaborEdit = Accesor.ObtenerDetalleAvanceLabor(detalleAvanceLabor.CodigoLabor, detalleAvanceLabor.CodigoPuntoTopograficoAnterior, detalleAvanceLabor.CodigoPuntoTopograficoActual, detalleAvanceLabor.CodigoAvanceLabor);
            detalleAvanceLaborEdit.CodigoLabor = detalleAvanceLabor.CodigoLabor;
            detalleAvanceLaborEdit.CodigoPuntoTopograficoAnterior = detalleAvanceLabor.CodigoPuntoTopograficoAnterior;
            detalleAvanceLaborEdit.CodigoPuntoTopograficoActual = detalleAvanceLabor.CodigoPuntoTopograficoActual;
            detalleAvanceLaborEdit.ContraAnterior = detalleAvanceLabor.ContraAnterior;
            detalleAvanceLaborEdit.ContraActual = detalleAvanceLabor.ContraActual;
            detalleAvanceLaborEdit.Avance = detalleAvanceLabor.Avance;
            detalleAvanceLaborEdit.Observacion = detalleAvanceLabor.Observacion;
            Accesor.ModificarDetalleAvanceLabor(detalleAvanceLaborEdit);
        }
        /// <summary>
        /// Método para eliminar DetalleAvanceLabor
        /// </summary>
        /// <param name="DetalleAvanceLabor"></param>
        public void EliminarDetalleAvanceLabor(int codigoLabor, int codigoPuntoTopoAnterior, int codigoPuntoTopoActual, int codigoAvanceLabor)
        {
            var detallaAvanceLabor = Accesor.ObtenerDetalleAvanceLabor(codigoLabor, codigoPuntoTopoAnterior, codigoPuntoTopoActual, codigoAvanceLabor);
            if (detallaAvanceLabor != null)
                Accesor.EliminarDetalleAvanceLabor(detallaAvanceLabor);
        }

        /// <summary>
        /// Método que devuelve DetalleAvanceLabor por codigo
        /// </summary>
        /// <param name="codigoDetalleAvanceLabor"></param>
        /// <returns></returns>
        public DetalleAvanceLabor ObtenerDetalleAvanceLabor(int codigoLabor, int codigoPuntoTopoAnterior, int codigoPuntoTopoActual, int codigoAvanceLabor)
        {
            return Accesor.ObtenerDetalleAvanceLabor(codigoLabor, codigoPuntoTopoAnterior, codigoPuntoTopoActual, codigoAvanceLabor);
        }

        #endregion
        #region Accesor
        private static DADetalleAvanceLabor Accesor
        {
            [System.Diagnostics.DebuggerStepThrough]
            get { return new DADetalleAvanceLabor(); }
        }
        #endregion
    }
}
